/**
 * 认证相关常量定义
 * 统一存放所有认证相关的常量，避免魔法字符串
 */

// 存储键名
export const STORAGE_KEYS = {
  TOKEN: 'token',
  USER_INFO: 'user_info',
  LOGIN_TIME: 'login_time',
  LAST_USER_ID: 'last_user_id'
}

// API端点
export const API_ENDPOINTS = {
  LOGIN: '/api/auth/login',
  LOGOUT: '/api/auth/logout',
  REFRESH_TOKEN: '/api/auth/refresh',
  USER_INFO: '/api/user/info',
  CHECK_LOGIN: '/api/auth/check'
}

// 错误码
export const ERROR_CODES = {
  TOKEN_EXPIRED: 401,
  INVALID_TOKEN: 403,
  USER_NOT_FOUND: 404,
  NETWORK_ERROR: -1
}

// 用户角色
export const USER_ROLES = {
  USER: 'user',
  ADMIN: 'admin',
  SUPER_ADMIN: 'super_admin'
}

// 登录状态
export const LOGIN_STATUS = {
  LOGGED_IN: 'logged_in',
  LOGGED_OUT: 'logged_out',
  EXPIRED: 'expired',
  UNKNOWN: 'unknown'
}

// 默认配置
export const DEFAULT_CONFIG = {
  TOKEN_EXPIRE_TIME: 7 * 24 * 3600 * 1000, // 7天
  AUTO_REFRESH_THRESHOLD: 3600 * 1000, // 1小时前刷新
  MAX_RETRY_TIMES: 3
}